Il y a aucun nom plus cool que "fonction fléchère"
Le point ci-haut est un fait, non une opignon. Ce sera à l'examen à coup sûr.
En javascript, une fonction est une valeur. On dit qu'en javascript, les fonctions sont "first class citizen". C'est à dire que fonction peut recevoir et retourner une fonction.
function map(lst, fn){
const ret = [];
for(const e of lst){
ret.push(fn(e));
}
return ret;
}
console.log(map([0, 1, 2, 3, 4, 5], multiplyBy2); // [0, 2, 4, 6, 8, 10]
console.log(map([0, 1, 2, 3, 4, 5], function(x){
return 2 * x;
}); // [0, 2, 4, 6, 8, 10]
console.log(map([0, 1, 2, 3, 4, 5], (x) => 2 * x); // [0, 2, 4, 6, 8, 10]
Première utilisation de fonction fléchère
Les fonctions fléchères sont la manière que javascript utilise pour implémenter les lambdas.
En anglais, fonctions fléchères est "(fat) arrow function"
const calculDeTax = (prix) => 1.15 * prix
const firstLetterInCapital = (word) => word.charAt(0).toUpperCase();
const isId = (word) => word.charAt(0).length ===10 && word.charAt(0).toUpperCase() === "X" ;
return car elles calcullent une seule chose!const getIdTyp = (word) => {
if(word.startsWith("x")){
return "id";
}
return "invalid"
}
recevoir des fonctions en arguments
retourner des fonctions de fonctions
const lst = [0,1,2,3,4]
lst.map((n) => n % 2).map((x) => {
if (x == 0) {
return "pair"
} else {
return "impair"
}
}) // ["pair", "impair", "pair", "impair", "pair"]
map d'une liste créer un nouvelle list en appliquant la fonction à chaque élément de la liste
map est un cas particulier d'une loopmap est très utilisé dans les languages fonctionnelsconst lst = [0,1,2,3,4]
lst.filter((n) => n % 2) // [0, 2, 4]
filter d'une liste créer un nouvelle list comprenant seulement les élément où le prédicat à retourner true
filter est un (autre) cas particulier d'une loopfilter est très utilisé dans les languages fonctionnels
En utilisant map, filter et les fonctions fléchères, extraires tous les noms qui où le nom de famille commence par la letter A.